// 管理比较复杂流程
// 本质是一个迭代器   co库  帮助迭代
// 如果业务有前后连续比较复杂  推荐使用saga
// 可以通过使用 effects API   fork call take put cancel 等来创建 Effect

// 

// saga的分类
// worker saga 做业务的工作  如调用API  进行异步请求  获取异步封装结果
// watcher saga 监听被dispatch的actions  被触发 调用worker执行任务
// root saga 立即启动saga的唯一入口

import { Provider, useDispatch, useSelector } from 'react-redux'
import store from '../../store'

const Child = function() {
  let state = useSelector(state => state.counter1)
  let dispatch = useDispatch()
  return (
    <div>
      {state.number}
      <button onClick={()=>dispatch({type: 'ADD1'})}>+</button>
      <button onClick={()=>dispatch({type: 'ASYNC_ADD'})}>saync +</button>
      <button onClick={()=>dispatch({type: 'ASYNC_ADD2'})}>saync2 +</button>
      <button onClick={()=>dispatch({type: 'STOP'})}>stop +</button>
    </div>
  )
}


function Comp() {
  return (
    <Provider store={store}>
      <div>saga</div>
      <Child/>
    </Provider>
  )
}

export default Comp